package utils

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// ResJson 通用的返回固定的Json结果的结构体
type ResJson struct {
	Code string `json:"code"`
	Msg  string `json:"msg"`
	Data any    `json:"data"`
}

// ToJson 返回Json结果
func ToJson(ctx *gin.Context, code string, msg string, data any) {
	var ret *ResJson
	if data != nil {
		ret = &ResJson{Code: code, Msg: msg, Data: data}
	} else {
		ret = &ResJson{Code: code, Msg: msg}
	}
	ctx.JSON(http.StatusOK, ret)
}

// RetJson 富文本编辑器返回结果的结构体
type RetJson struct {
	Errno   string `json:"errno"`
	Message string `json:"message"`
	Data    any    `json:"data"`
}

// ToJson4We 富文本编辑器返回结果
func ToJson4We(ctx *gin.Context, code string, msg string, data any) {
	var res *RetJson
	if data != nil {
		res = &RetJson{Errno: code, Message: msg, Data: data}
	} else {
		res = &RetJson{Errno: code, Message: msg}
	}
	ctx.JSON(http.StatusOK, res)
}
